#!/bin/bash
# 文件名：my_rebuild.sh
# 需要赋予运行权限：chmod +x my_rebuild.sh
#✔️❌🍭⚠️⏰

# 默认全量编译
incremental=0

# 解析命令行参数
for arg in "$@"
do
    case $arg in
        -i|--incremental)
        incremental=1
        shift # 移除已处理的参数
        ;;
        *)
        # 未知选项
        ;;
    esac
done

# 处理旧的构建目录
if [ -d "build" ]; then
    if [ "$incremental" -eq 1 ]; then
        echo "🍭 增量编译：保留 build 目录..."
    else
        echo "🍭 删除旧的 build 目录..."
        rm -rf build
        # 重新创建目录确保后续操作正常
        mkdir build
    fi
else
    echo "🍭 创建新的 build 目录..."
    mkdir build
fi

# 进入 build 目录
cd build || exit 1

# 生成/更新 CMake 配置
echo "🍭 生成/更新 CMake 构建系统..."
cmake -S .. -B . -G Ninja || { echo "❌生成 CMake 构建系统失败！"; exit 1; }
echo "✔️ CMake 构建系统已就绪！"

# 执行编译
echo "🍭 开始编译..."
cmake --build . --parallel 7 || { echo "❌编译失败！"; exit 1; }
echo "✔️ 编译完成！"

# 返回根目录
cd ..

echo "🍭 构建模式: $([ "$incremental" -eq 1 ] && echo "增量编译" || echo "全量编译")"
echo "✔️ 构建完成！"